package com.jiliang.jiliangserver.mapper;

import com.jiliang.jiliangserver.annotation.DataSource;
import com.jiliang.jiliangserver.domain.*;
import com.jiliang.jiliangserver.enums.DataSourceType;

import java.util.List;
import java.util.Map;

/**
 * 参数配置 数据层
 * 
 * @author ruoyi
 */
@DataSource(DataSourceType.SLAVE)
public interface MeterMapper
{
    //计量总览数据
    public Map selectMeterOverview();

    //获取大/小表异常总数
    public List<Map> selectExceptionInfo(MeterQuery query);

    //异常分类统计，查询大/小表各类异常数量
    public Map selectMeterExcCount(MeterQuery query);

    //资料统计
    public List<Map> meterInfoStatistics(MeterQuery query);

    //小区阶梯水量
    public Map selectXqStair(MeterQuery query);

    //小区用户总数以及用水量
    public List<Map> selectDiWater(MeterQuery query);

    //用户阶梯水量
    public Map selectUserStair(MeterQuery query);


    //当月抄表计划查询
    public List<Map> selectMeterReadInfo(MeterQuery query);

    //查询抄表历史（历史账表）
    public List<Map> selectCbHistory(MeterQuery query);    //查询抄表历史

    //查询抄表历史（meterread_his表）
    public List<Map> selectMeterReadHis(MeterQuery query);

    //大表明细
    //@DataSource(DataSourceType.SLAVE)
    public List<Map> selectMiRecentWater(MeterQuery query);

    //大表用水总量
    public Map selectMiRecentWaterSum(MeterQuery query);

    //查询本月各小区抄表情况
    public List<Map> selectXqCbState(MeterQuery query);

    //查询本月集中器抄表情况
    public List<Map> selectConcentratorState(MeterQuery query);

//    查询异常报警表
    @DataSource(DataSourceType.MASTER)
    public List<Map> selectExcList();

//    查询某小区有哪些表
    @DataSource(DataSourceType.SLAVE)
    public List<Map> selectDistrictinfo(MeterQuery query);

//    用水分析--用户用水量
    @DataSource(DataSourceType.SLAVE)
    public List<Map> selectUserWater(MeterQuery query);

    //    用水分析--用户详情--用水趋势--（查询用户近期用水情况）
    public List<Map> selectUserRecentWater(MeterQuery query);

    public List<Map> selectCiWaterDetail(MeterQuery query);

    //    条件查询水表
    public List<Map> selectMeterInfoList(MeterQuery query);

    // 换表分析
    public List<Map> changeMeterAnalysis(MeterQuery query);

    // 同环比分析
    public List<Map> monthYearCompare(MeterQuery query);

    public List<Map> selectWaterTrendByDept(MeterQuery query);

    //拆装工单查询
    public List<RequestXh> selectRequestXhList(RequestXh xh);

    //故障换标工单查询
    public List<RequestGzhb> selectRequestGzhbList(RequestGzhb gzhb);

    //    用水分析--用户详情--用水趋势--（查询用户近期用水情况）
    public void setMeterAlarm(MeterDto meterDto);

    //核实异常表
    public int exceptionComfirm(String miid );

    //查询各类监控数量
    public Map selectMonitorCounts();

    public List<Map> selectUserMeterInfo(UserMeterDto query);

    //根据水表查询所有抄表记录
    public List<Map> selectCbByMiid(MeterQuery query);

    //查询小区近一年抄表情况（按月）
    public List<Map> selectXqCbByMonth(MeterQuery query);

    @DataSource(DataSourceType.MASTER)
    public int createConcentrator(Concentrator concentrator);

    @DataSource(DataSourceType.MASTER)
    public List<Concentrator> selectConcentratorList(Concentrator concentrator);

    @DataSource(DataSourceType.MASTER)
    public int updateConcentrator(Concentrator concentrator);

    @DataSource(DataSourceType.MASTER)
    public Concentrator selectConcentratorById(Long id);

}
